<?php

namespace App\Helpers;

use Carbon\Carbon;

class DateTimeHelper
{
    /**
     * 格式化时间为上海时区的ISO字符串
     */
    public static function toShanghaiISO(Carbon $dateTime): string
    {
        return $dateTime->setTimezone('Asia/Shanghai')->format('Y-m-d\TH:i:s.v\Z');
    }

    /**
     * 格式化时间为上海时区的中文格式
     */
    public static function toShanghaiChinese(Carbon $dateTime): string
    {
        return $dateTime->setTimezone('Asia/Shanghai')->locale('zh_CN')->isoFormat('YYYY年MM月DD日 HH:mm:ss');
    }

    /**
     * 格式化时间为上海时区的简单格式
     */
    public static function toShanghaiSimple(Carbon $dateTime): string
    {
        return $dateTime->setTimezone('Asia/Shanghai')->format('Y-m-d H:i:s');
    }

    /**
     * 获取当前上海时间
     */
    public static function nowShanghai(): Carbon
    {
        return now()->setTimezone('Asia/Shanghai');
    }

    /**
     * 格式化相对时间（中文）
     */
    public static function diffForHumans(Carbon $dateTime): string
    {
        return $dateTime->setTimezone('Asia/Shanghai')->locale('zh_CN')->diffForHumans();
    }
}
